PySpark 顧名思義,也就是Python 的一個Spark Library,主要是利用Python語法結合Spark的框架,也是現在很主流的一個處理大量資料的框架之一。
那什麼是Apache Spark呢?
Apache Spark 是用於大規模資料處理的整合數據分析引擎,內建 SQL、串流、機器學習和圖形處理等多種模組。Spark 可以在 Apache Hadoop、Apache Mesos、Kubernetes 和雲端上執行,也可獨立運作,處理各種資料來源。 --Google Cloud
對於初學者來說,這個定義恐怕還是很模糊,對於想要開始成為Data Engineer的你,可能是一大退卻的主因。
OK,準備要放棄了嗎?(我也是)
但先等等,讓我們來一起一步一步解構它
可以看到在google 的介紹裡,又看到另一個Apache的服務:Hadoop!
在了解spark之前,我們先來了解spark的好朋友,Hadoop!
Hadoop 是一個分散式的架構,是一個cluster的概念,針對大型的資料進行分散式的儲存與處理,想像你有100TB的資料,但是你的1台電腦沒辦法做到自己儲存100TB的資料,那該怎麼做呢? 或許10台電腦就可以達成了,而Hadoop 就是base on 這樣的想法,所以每台電腦,每個機器都可以提供基本運算以及儲存功能,讓他可以達到儲存大量資料的目的。
也就是說你會有一個主要機器(Master Node),搭配非常多的小機器(Slave Node)來儲存,當你機器一多,就可以將File分成好幾份,也能同時再複製幾份儲存在不同的小機器中,每份資料在整個系統中都有好幾份,如果一台小機器毀損,也能確保資料依然存在。
Spark 也是一個處理資料的架構,那他跟Hadoop的差異又在哪裡呢?
讓我們簡單比較一下吧~
項目| |
------------- | -------------|-------------
Spark | in-memory運算|快速
Hadoop | 硬碟?|成本低,但較慢
其實Spark的核心是由Scala,但因為無法快速支援machine Learning 所以才衍生出Pyspark的架構,協助資料分析師,資料工程師,甚至資料科學家可以快速地去做資料處理分析甚至可以快速的完成一個ML專案。
沒關係,就讓我們跟著資料,跟著操作, 一起開始了解吧。(定義這種東西鬼才可以第一次就看得懂)
接下來的30天主要會藉由詳細介紹Pyspark的各種方法,以及處理DataFrame來做介紹。
一起胡搞瞎搞30天的Pyspark, 相信會在這個過程中學會,成為一個Data Engineer吧?
那麼,究竟他是不是一個Data Engineer 的必備Skill 呢?
I think, We can find out together, during those 30days!
如果有任何不理解、錯誤或其他方法想分享的話,歡迎留言給我!喜歡的話,也歡迎按讚訂閱!
我是 Vivi,一位在雲端掙扎的資料工程師!我們下一篇文章見!Bye Bye~
【本篇文章將同步更新於個人的 Medium,期待與您的相遇!】